package com.bitoon.basketdudes.web;

import com.bitoon.basketdudes.web.datos.DatosRanking;
import com.bitoon.basketdudes.web.jpa.Ranking;
import com.bitoon.basketdudes.web.commons.RankingCommon;
import javax.persistence.*;
import org.apache.log4j.Logger;

public class InfoRankings extends BaseAction {

    private int idEquipo;
    private DatosRanking rankingGlobal;

    private Logger log = Logger.getLogger(InfoRankings.class);

    @Override
    public String execute() {
        String retorno = SUCCESS;

        if (log.isDebugEnabled()) {
            log.debug("ranking: execute");
        }

        RankingCommon rc = new RankingCommon();
        setRankingGlobal(rc.consultaRankingGlobal(getIdEquipo()));

        if (log.isDebugEnabled()) {
            log.debug("ranking: consulta: " + rankingGlobal);
        }

        return retorno;
    }


    /*
    public DatosRanking consultaRankingGlobal(int idEquipo) {
        EntityManager em = null;
        DatosRanking retorno = null;

        try {

            em = emfBasket.createEntityManager(); // checked

            Query q = em.createNamedQuery("Ranking.findById");
            q.setParameter("id", idEquipo);

            Ranking ranking = (Ranking)q.getSingleResult();

            retorno = new DatosRanking();
            retorno.setPosicionActual(ranking.getPosicion());
            retorno.setPosicionAnterior(ranking.getAntPosicion());

            q = em.createQuery("SELECT COUNT(r) FROM Ranking r");
            Long total = (Long)q.getSingleResult();
            retorno.setTotalPosiciones(total);

        } catch (NoResultException e) {
            log.error("[consultaRankingGlobal][equipo " + idEquipo + " no encontrado en el ranking]");
        } catch (Exception e) {
            log.error("[consultaRankingGlobal]: " + e);
        } finally {
            try { em.close(); } catch (Exception e) { }
        }

        return retorno;
    }
     * 
     */

    public int getIdEquipo() {
        return idEquipo;
    }

    public void setIdEquipo(int idEquipo) {
        this.idEquipo = idEquipo;
    }

    public DatosRanking getRankingGlobal() {
        return rankingGlobal;
    }

    public void setRankingGlobal(DatosRanking rankingGlobal) {
        this.rankingGlobal = rankingGlobal;
    }

}
